package sicnu.cs.ich.user.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import sicnu.cs.ich.api.domain.dto.CertificationDTO;
import sicnu.cs.ich.api.domain.entity.Certification;
import sicnu.cs.ich.api.domain.entity.CertificationFile;
import sicnu.cs.ich.api.domain.form.CertParam;
import sicnu.cs.ich.api.domain.vo.FileVo;

import java.util.List;

/**
 * @author 沈洋 邮箱:1845973183@qq.com
 * @create 2021/11/14-13:34
 **/
@Mapper
public interface CertMapper {
    /**
     * 根据用户名和认证类型查找用户的认证信息
     *
     * @param userId   用户id
     */
    List<Certification> findCertByUserId(@Param("userId") Integer userId, @Param("typeId") Integer typeId);

    /**
     * 根据认证id查找对应的文件
     *
     * @param certId 认证id
     * @return 文件列表
     */
    List<CertificationFile> findCertFiles(@Param("certId") String certId);

    List<FileVo> findCertFileVos(@Param("certId") String certId);
    /**
     * 删除认证文件信息
     *
     * @param certId 认证id
     */
    void deleteCertFile(@Param("certId") String certId);

    /**
     * 插入认证信息
     *
     * @param cert 认证信息
     * @return 修改条数
     */
    int insertCert(Certification cert);

    /**
     * 插入文件信息
     *
     * @param files 文件列表
     */
    void insertCertFiles(@Param("files") List<CertificationFile> files);

    /**
     * 按条件查询认证信息
     */
    List<Certification> selectCert(CertParam param);

    /**
     * 认证详情
     * @param certId 认证id
     */
    CertificationDTO findCertDTO(String certId);

    /**
     * 获取认证实体
     */
    Certification findCert(String certId);

    /**
     *
     * @param certId 认证id
     * @param status 更新状态
     */
    int updateCertStatus(@Param("certId") String certId, @Param("status") int status);
}
